ExercÃcios do curso:
https://www.udemy.com/course/interactive-python-dashboards-with-plotly-and-dash/
import numpy as np
import plotly.offline as pyo
import plotly.graph_objs as go
np.random.seed(42)
random_x = np.random.randint(1,101,100)
random_y = np.random.randint(1,101,100)
data = [go.Scatter(x=random_x, y=random_y, mode='markers')]
layout = go.Layout(title='First plot',
xaxis={'title':'My X Axis'},
yaxis=dict(title='My Y Axis'),
hovermode='closest')
fig = go.Figure(data=data, layout=layout)
pyo.iplot(fig)
Para salvar ao invés de de plotar no jupyter notebook, trocar a última linha de comando por:
pyo.plot(fig, filename='nome_do_plot.html')
import numpy as np
import plotly.offline as pyo
import plotly.graph_objs as go
np.random.seed(42)
random_x = np.random.randint(1,101,100)
random_y = np.random.randint(1,101,100)
data = [go.Scatter(x=random_x,
y=random_y,
mode='markers',
marker=dict(size=12,
color='rgb(51, 204, 153)',
symbol='pentagon',
line={'width':2}
))]
layout = go.Layout(title='First plot',
xaxis={'title':'My X Axis'},
yaxis=dict(title='My Y Axis'),
hovermode='closest')
fig = go.Figure(data=data, layout=layout)
pyo.iplot(fig)
import numpy as np
import plotly.offline as pyo
import plotly.graph_objs as go
np.random.seed(56)
x_values = np.linspace(0,1,100)
y_values = np.random.randn(100)
trace0 = go.Scatter(x=x_values, y=y_values+5,
mode='markers', name='markers')
trace1 = go.Scatter(x=x_values, y=y_values,
mode='lines', name='lines')
trace2 = go.Scatter(x=x_values, y=y_values-5,
mode='lines+markers', name='lines and markers')
data = [trace0, trace1, trace2]
layout = go.Layout(title='Line Chart')
fig = go.Figure(data=data, layout=layout)
pyo.iplot(fig)
import pandas as pd
import plotly.offline as pyo
import plotly.graph_objs as go
df = pd.read_csv('data/nst-est2017-alldata.csv')
df2 = df[df['DIVISION'] == '1']
df2.set_index('NAME', inplace=True)
list_of_pop_col = [col for col in df2.columns if col.startswith('POP')]
df2 = df2[list_of_pop_col]
data = [go.Scatter(x=df2.columns,
y=df2.loc[name],
mode='lines',
name=name) for name in df2.index]
pyo.iplot(data)
ExercÃcio:
#######
# Objective: Using the file 2010YumaAZ.csv, develop a Line Chart
# that plots seven days worth of temperature data on one graph.
# You can use a for loop to assign each day to its own trace.
######
# Perform imports here:
import pandas as pd
import plotly.offline as pyo
import plotly.graph_objs as go
# Create a pandas DataFrame from 2010YumaAZ.csv
df = pd.read_csv('data/2010YumaAZ.csv')
days = ['TUESDAY','WEDNESDAY','THURSDAY','FRIDAY','SATURDAY','SUNDAY','MONDAY']
# Primeiras linhas
df.head()
# Use a for loop (or list comprehension to create traces for the data list)
data = []
for day in days:
df2 = df[df['DAY'] == day]
trace = go.Scatter(x=df2['LST_TIME'],
y=df2['T_HR_AVG'],
mode='lines',
name=day)
data.append(trace)
# Define the layout
layout = go.Layout(title='Line Chart Exercise',
xaxis={'title':'Last time'},
yaxis={'title':'Total Hour Average'},
hovermode='closest')
fig = go.Figure(data=data, layout=layout)
pyo.iplot(fig)
import pandas as pd
import plotly.offline as pyo
import plotly.graph_objs as go
df = pd.read_csv('data/2018WinterOlympics.csv')
df.head()
data = [go.Bar(x=df['NOC'], y=df['Total'])]
layout = go.Layout(title='Medals')
fig = go.Figure(data=data,layout=layout)
pyo.iplot(fig)
trace0 = go.Bar(x=df['NOC'], y=df['Gold'], name='Gold', marker={'color':'#FFD700'})
trace1 = go.Bar(x=df['NOC'], y=df['Silver'], name='Silver', marker={'color':'#9EA0A1'})
trace2 = go.Bar(x=df['NOC'], y=df['Bronze'], name='Bronze', marker={'color':'#CD7F32'})
data = [trace0, trace1, trace2]
layout = go.Layout(title='Medals')
fig = go.Figure(data=data,layout=layout)
pyo.iplot(fig)
trace0 = go.Bar(x=df['NOC'], y=df['Gold'], name='Gold', marker={'color':'#FFD700'})
trace1 = go.Bar(x=df['NOC'], y=df['Silver'], name='Silver', marker={'color':'#9EA0A1'})
trace2 = go.Bar(x=df['NOC'], y=df['Bronze'], name='Bronze', marker={'color':'#CD7F32'})
data = [trace0, trace1, trace2]
layout = go.Layout(title='Medals', barmode='stack')
fig = go.Figure(data=data,layout=layout)
pyo.iplot(fig)
ExercÃcio
#######
# Objective: Create a stacked bar chart from
# the file ../data/mocksurvey.csv. Note that questions appear in
# the index (and should be used for the x-axis), while responses
# appear as column labels. Extra Credit: make a horizontal bar chart!
######
# Perform imports here:
import pandas as pd
import plotly.offline as pyo
import plotly.graph_objs as go
# create a DataFrame from the .csv file:
df = pd.read_csv('data/mocksurvey.csv', index_col=0)
df.head()
# create traces using a list comprehension:
data = [go.Bar(x=df.index, y=df[response], name=response) for response in df.columns]
layout = go.Layout(title='Bar Chart Exercise', barmode='stack')
# create a layout, remember to set the barmode here
fig = go.Figure(data=data, layout=layout)
# create a fig from data & layout, and plot the fig.
pyo.iplot(fig)
# create traces using a list comprehension:
data = [go.Bar(y=df.index, x=df[response], name=response, orientation= 'h') for response in df.columns]
layout = go.Layout(title='Bar Chart Exercise', barmode='stack')
# create a layout, remember to set the barmode here
fig = go.Figure(data=data, layout=layout)
# create a fig from data & layout, and plot the fig.
pyo.iplot(fig)
import pandas as pd
import plotly.offline as pyo
import plotly.graph_objs as go
df = pd.read_csv('data/mpg.csv')
df.head()
data = [go.Scatter(x=df['horsepower'],
y=df['mpg'],
text=df['name'],
mode='markers',
marker=dict(size=3*df['cylinders'], color=df['cylinders'], showscale=True))]
layout = go.Layout(title='Buble Chart', hovermode='closest')
fig = go.Figure(data=data, layout=layout)
pyo.iplot(fig)
import pandas as pd
import plotly.offline as pyo
import plotly.graph_objs as go
y = [1,14,15,15,17,18,18,19,19,20,20,23,24,26,27,27,28,29,33,54]
data = [go.Box(y=y)]
pyo.iplot(data)
import pandas as pd
import plotly.offline as pyo
import plotly.graph_objs as go
y = [1,14,15,15,17,18,18,19,19,20,20,23,24,26,27,27,28,29,33,54]
data = [go.Box(y=y, boxpoints='all')]
pyo.iplot(data)
import pandas as pd
import plotly.offline as pyo
import plotly.graph_objs as go
y = [1,14,15,15,17,18,18,19,19,20,20,23,24,26,27,27,28,29,33,54]
data = [go.Box(y=y, boxpoints='all', jitter=0.3, pointpos=0)] # Jitter é o quanto os dados estão espalhados
pyo.iplot(data)
snodgrass = [.209,.205,.196,.210,.202,.207,.224,.223,.220,.201]
twain = [.225,.262,.217,.240,.230,.229,.235,.217]
data = [go.Box(y=snodgrass, name='QCS'),
go.Box(y=twain,name='MT')]
layout = go.Layout(title = 'Comparison of three-letter-word frequencies<br>\
between Quintus Curtius Snodgrass and Mark Twain')
fig = go.Figure(data=data, layout=layout)
pyo.iplot(fig)
import pandas as pd
import plotly.offline as pyo
import plotly.graph_objs as go
df = pd.read_csv('data/mpg.csv')
data = [go.Histogram(x=df['mpg'])]
layout = go.Layout(title='Histogram')
fig = go.Figure(data=data, layout=layout)
pyo.iplot(fig)
import pandas as pd
import plotly.offline as pyo
import plotly.graph_objs as go
df = pd.read_csv('data/mpg.csv')
data = [go.Histogram(x=df['mpg'], xbins=dict(start=0,end=50,size=10))]
layout = go.Layout(title='Histogram')
fig = go.Figure(data=data, layout=layout)
pyo.iplot(fig)
import pandas as pd
import plotly.offline as pyo
import plotly.graph_objs as go
df = pd.read_csv('data/mpg.csv')
data = [go.Histogram(x=df['mpg'], xbins=dict(start=0,end=50,size=1))]
layout = go.Layout(title='Histogram')
fig = go.Figure(data=data, layout=layout)
pyo.iplot(fig)
import numpy as np
import plotly.offline as pyo
import plotly.figure_factory as ff
x = np.random.randn(1000)
hist_data = [x]
group_labels = ['distplot']
fig = ff.create_distplot(hist_data, group_labels)
pyo.iplot(fig)
import numpy as np
import plotly.offline as pyo
import plotly.figure_factory as ff
x1 = np.random.randn(1000)-2
x2 = np.random.randn(1000)
x3 = np.random.randn(1000)+2
x4 = np.random.randn(1000)+4
hist_data = [x1,x2,x3,x4]
group_labels = ['x1','x2','x3','x4']
fig = ff.create_distplot(hist_data, group_labels)
pyo.iplot(fig)
import numpy as np
import plotly.offline as pyo
import plotly.figure_factory as ff
x1 = np.random.randn(1000)-2
x2 = np.random.randn(1000)
x3 = np.random.randn(1000)+2
x4 = np.random.randn(1000)+4
hist_data = [x1,x2,x3,x4]
group_labels = ['x1','x2','x3','x4']
fig = ff.create_distplot(hist_data, group_labels, bin_size=[0.05,0.05,0.05,0.05])
pyo.iplot(fig)
df = pd.read_csv('data/2010SantaBarbaraCA.csv')
df.head()
df.columns
import pandas as pd
import plotly.offline as pyo
import plotly.graph_objs as go
df = pd.read_csv('data/2010SantaBarbaraCA.csv')
data = [go.Heatmap(x=df['DAY'], y=df['LST_TIME'], z=df['T_HR_AVG'].values.tolist())]
layout = go.Layout(title='SB CA Temperature')
fig = go.Figure(data=data, layout=layout)
pyo.iplot(fig)
# Mudando colorscale
import pandas as pd
import plotly.offline as pyo
import plotly.graph_objs as go
df = pd.read_csv('data/2010SantaBarbaraCA.csv')
data = [go.Heatmap(x=df['DAY'], y=df['LST_TIME'], z=df['T_HR_AVG'].values.tolist(), colorscale='Jet')]
layout = go.Layout(title='SB CA Temperature')
fig = go.Figure(data=data, layout=layout)
pyo.iplot(fig)
import pandas as pd
import plotly.offline as pyo
import plotly.graph_objs as go
from plotly.subplots import make_subplots
df1 = pd.read_csv('data/2010SitkaAK.csv')
df2 = pd.read_csv('data/2010SantaBarbaraCA.csv')
df3 = pd.read_csv('data/2010YumaAZ.csv')
trace1 = go.Heatmap(x=df1['DAY'], y=df1['LST_TIME'],
z=df1['T_HR_AVG'], colorscale='Jet', zmin=5, zmax=40)
trace2 = go.Heatmap(x=df2['DAY'], y=df2['LST_TIME'],
z=df2['T_HR_AVG'], colorscale='Jet', zmin=5, zmax=40)
trace3 = go.Heatmap(x=df3['DAY'], y=df3['LST_TIME'],
z=df3['T_HR_AVG'], colorscale='Jet', zmin=5, zmax=40)
fig = make_subplots(rows=1, cols=3, subplot_titles=['Sitka AK', 'SB CA', 'Yuma AZ'], shared_yaxes=False)
fig.append_trace(trace1, 1, 1)
fig.append_trace(trace2, 1, 2)
fig.append_trace(trace3, 1, 3)
fig['layout'].update(title=dict(text='Temperature for 3 cities',
y=0.9,
x=0.5))
pyo.iplot(fig)